package meituan2;

import java.util.Scanner;
import java.util.Stack;

public class Main1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        for(int i=0;i<N;i++){
            int n = in.nextInt();
            int[] ru = new int[n];
            int[] chu = new int[n];

            for(int j=0;j<n;j++){
                ru[j] = in.nextInt();
            }
            for(int j=0;j<n;j++){
                chu[j] = in.nextInt();
            }

            // 判断是否符合栈规则
            System.out.println(judge(ru,chu,n));
        }
    }

    public static String judge(int[] ru,int[] chu,int len){
        Stack<Integer> stack = new Stack<>();

        int i=0;//将要入栈的元素
        int j=0;//出站的元素
        /*
        如果当前栈顶元素等于要出栈列车：直接出栈
        否则入栈
        直到全部入栈或者栈空

        如果栈不空，no，如果空 yes
         */

        while (j<len){
            if(i<len) stack.push(ru[i++]);

            if(stack.peek() == chu[j]) {
                stack.pop();
                j++;
            }
        }


        if(stack.isEmpty()){
            return "YES";
        }
        return "NO";
    }
}
